package sohsite.fachada;

import sohsite.pelada.jogo.RepositorioJogoHbm;
import sohsite.pelada.pelada.RepositorioPeladaHbm;
import sohsite.pelada.peladeiro.RepositorioPeladeiroHbm;
import sohsite.pelada.peladeiroJogo.RepositorioPeladeiroJogoHbm;
import sohsite.reserva.RepositorioReservaHbm;
import sohsite.usuario.RepositorioUsuarioHbm;

public class SistemaSohSite {
	private static SistemaSohSite sistemaSohSite;
	
	private ControladorUsuario controladorUsuario;
	private ControladorPelada controladorPelada;
	private ControladorReserva controladorReserva;
	
	private SistemaSohSite(){
		RepositorioUsuarioHbm repositorioUsuarioHbm = new RepositorioUsuarioHbm();
		
		RepositorioReservaHbm repositorioReservaHbm = new RepositorioReservaHbm();
		
		RepositorioPeladaHbm repositorioPelada = new RepositorioPeladaHbm();
		RepositorioJogoHbm repositorioJogo = new RepositorioJogoHbm();
		RepositorioPeladeiroHbm repositorioPeladeiro = new RepositorioPeladeiroHbm();
		RepositorioPeladeiroJogoHbm repositorioPeladeiroJogo = new RepositorioPeladeiroJogoHbm();
		
		
		controladorUsuario = new ControladorUsuario(repositorioUsuarioHbm);
		controladorPelada = new ControladorPelada(repositorioPelada, repositorioJogo, repositorioPeladeiro, repositorioPeladeiroJogo);
		controladorReserva = new ControladorReserva(repositorioReservaHbm);
	}
	
	public static SistemaSohSite getInstancia(){
		if (sistemaSohSite == null){
			sistemaSohSite = new SistemaSohSite();
		}
		return sistemaSohSite;
	}
	
	public ControladorUsuario getControladorUsuario(){
		return controladorUsuario;
	}
	public ControladorPelada getControladorPelada(){
		return controladorPelada;
	}
	public ControladorReserva getControladorReserva(){
		return controladorReserva;
	}
}
